home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 May / com_0505_1.iso / opensource / top10 / amc_install.exe / {app} / Scripts / dvdnet.ru.ifs < prev    next >
Encoding:
Text File  |  2004-03-20  |  5.3 KB  |  163 lines

  1. // GETINFO SCRIPTING
  2. // Imports big picture from DVDnet.ru
  3. (***************************************************
  4.  *  Based on a script written Kamik aka SlawDD     *
  5.  *                                                 *
  6.  *  For use with Ant Movie Catalog 3.4.0           *
  7.  *  www.antp.be/software/moviecatalog              *
  8.  *                                                 *
  9.  *  This program is free software; you can         *
  10.  *  redistribute it and/or modify it under the     *
  11.  *  terms of the GNU General Public License as     *
  12.  *  published by the Free Software Foundation;     *
  13.  *  either version 2 of the License, or (at your   *
  14.  *  option) any later version.                     *
  15.  ***************************************************)
  16.  
  17. program DVDnet_PICT;
  18. const
  19.   BaseAddress = 'http://www.dvdnet.ru/';
  20. var
  21.   MovieName: string;
  22.   MovieName2: string;
  23.  
  24. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  25. var
  26.   i: Integer;
  27. begin
  28.   result := -1;
  29.   if StartAt < 0 then
  30.     StartAt := 0;
  31.   for i := StartAt to List.Count-1 do
  32.     if Pos(Pattern, List.GetString(i)) <> 0 then
  33.     begin
  34.       result := i;
  35.       Break;
  36.     end;
  37. end;
  38.  
  39. procedure AddMoviesTitlesDVD(Page: TStringList; var LineNr: Integer);
  40. var
  41.   Line: string;
  42.   MovieTitle, MovieAddress: string;
  43.   StartPos, EndPos: Integer;
  44. begin
  45.   LineNr := FindLine('<b>╘╚╦▄╠█ (µαφ≡ Φ αΩ≥╕≡√, Φπ≡α■∙Φσ πδαΓφ√σ ≡εδΦ):</b><br>', Page, 0);
  46.   Line := Page.GetString(LineNr);
  47.   repeat
  48.      WHILE pos('<a href="index', Line)>0 DO
  49.      BEGIN
  50.        StartPos := pos('<a href="index', Line) + 9;
  51.        MovieAddress := copy(Line, StartPos, pos('">', Line) - StartPos);
  52.        StartPos := pos('">', Line) + 2;
  53.        MovieTitle := copy(Line, StartPos, pos('</i>', Line) - StartPos);
  54.        Delete(Line, 1, pos(' </a><br><', Line));
  55.        HTMLDecode(Movietitle);
  56.        HTMLRemoveTags(MovieTitle);
  57.        PickTreeAdd(MovieTitle, BaseAddress + MovieAddress);
  58.      end;
  59.     LineNr := LineNr + 1;
  60.     Line := Page.GetString(LineNr);
  61.   until (pos('<b>╠╙╦▄╥╘╚╦▄╠█:</b><br>', Line)>0) or (pos('</table>', Line)>0);
  62. end;
  63.  
  64. procedure AddAnimeTitlesDVD(Page: TStringList; var LineNr: Integer);
  65. var
  66.   Line: string;
  67.   MovieTitle, MovieAddress: string;
  68.   StartPos, EndPos: Integer;
  69. begin
  70.   LineNr := FindLine('<b>╠╙╦▄╥╘╚╦▄╠█:</b><br>', Page, 0);
  71.   Line := Page.GetString(LineNr);
  72.   repeat
  73.     WHILE pos('<a href="index', Line)>0 DO
  74.     begin
  75.       StartPos := pos('<a href="index', Line) + 9;
  76.       MovieAddress := copy(Line, StartPos, pos('">', Line) - StartPos);
  77.       StartPos := pos('">', Line) + 2;
  78.       MovieTitle := copy(Line, StartPos, pos('</i>', Line) - StartPos);
  79.       Delete(Line, 1, pos(' </a><br><', Line));
  80.       HTMLDecode(Movietitle);
  81.       HTMLRemoveTags(MovieTitle);
  82.       PickTreeAdd(MovieTitle, BaseAddress + MovieAddress);
  83.     end;
  84.     LineNr := LineNr + 1;
  85.     Line := Page.GetString(LineNr);
  86.   until (pos('</table>', Line)>0);
  87. end;
  88.  
  89. procedure AddPictureDVD(Page: TStringList);
  90. var
  91.   Line, Value : string;
  92.   LineNr, BeginPos, EndPos: Integer;
  93. begin
  94. // Get Picture
  95.   LineNr := FindLine('window.open("pict', Page, 0);
  96.   if LineNr > -1 then
  97.   begin
  98.     Line := Page.GetString(LineNr);
  99.     BeginPos := pos('"pict', Line);
  100.     Delete(Line, 1, BeginPos);
  101.     EndPos := pos('"', Line);
  102.     Value := BaseAddress + copy(Line, 1, EndPos - 1);
  103.     GetPicture(Value, True); // False = do not store picture externally ; store it in the catalog file
  104.   end;
  105. end;
  106.  
  107. procedure AnalyzePage(Address: string);
  108. var
  109.   Page: TStringList;
  110.   LineNr, StartPos, EndPos, L: Integer;
  111.   Line: string;
  112.   MovieAddress, FindMovieName : string;
  113.  
  114. begin
  115.   PickTreeClear;
  116.   Page := TStringList.Create;
  117.   Page.Text := GetPage(Address);
  118.   if (pos('╧ε Γα°σ∞≤ τα∩≡ε±≤ Γ ßατσ φαΘΣσφε:', Page.Text)>0) then
  119.   begin
  120.         PickTreeAdd('═αΘΣσφε φα www.dvdnet.ru', '');
  121.         LineNr := FindLine('<b>╘╚╦▄╠█ (µαφ≡ Φ αΩ≥╕≡√, Φπ≡α■∙Φσ πδαΓφ√σ ≡εδΦ):</b><br>', Page, 0);
  122.         if LineNr >-1 then
  123.           begin
  124.             PickTreeAdd('╘Φδⁿ∞√', '');
  125.             AddMoviesTitlesDVD(Page, LineNr);
  126.           end;
  127.         LineNr := FindLine('<b>╠╙╦▄╥╘╚╦▄╠█:</b><br>', Page, 0);
  128.         if LineNr > -1 then
  129.           begin
  130.             PickTreeAdd('╠≤δⁿ≥⌠Φδⁿ∞√', '');
  131.             AddAnimeTitlesDVD(Page, LineNr);
  132.           end;
  133.         if PickTreeExec(Address) then
  134.           begin
  135.             Page := TStringList.Create;
  136.             Page.Text := GetPage(Address);
  137.             AddPictureDVD(Page);
  138.           end;
  139.   Page.Free;
  140.   end;
  141.   DisplayResults;
  142. end;
  143.  
  144. begin
  145.   PickListClear;
  146.   if CheckVersion(3,4,0) then
  147.   begin
  148.     MovieName := GetField(fieldOriginalTitle);
  149.     if MovieName = '' then MovieName := GetField(fieldTranslatedTitle);
  150.     if Input('Import picture from DVDNet.ru', 'Enter the title of the movie:', MovieName) then
  151.     begin
  152.       MovieName2:=MovieName;
  153.       MovieName:=StringReplace(MovieName, 'Æ', Chr(39));
  154.          MovieName:=AnsiLowerCase(MovieName);
  155.          MovieName:=AnsiUpFirstLetter(MovieName);
  156.          if pos('The ', MovieName)=1 then MovieName:=StringReplace(MovieName, 'The ', '');
  157.          AnalyzePage('http://www.dvdnet.ru/index.php?p=9&searching=y&checkform=y&search='+UrlEncode(MovieName));
  158.     end
  159.   else
  160.     ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.0)');
  161.   end;
  162. end.
  163.